package com.hyt.it.ogt.ykcj.domain.exam;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hyt.it.ogt.ykcj.common.annotation.Excel;
import com.hyt.it.ogt.ykcj.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 考试科目信息对象 exam_subject_info
 * 
 * @author admin
 * @date 2021-06-18
 */
@Data
@ToString
public class ExamSubjectInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 序号id */
    @ApiModelProperty(value = "序号ID")
    private String id;

    /** 科目编号 */
    @ApiModelProperty(value = "科目编号")
    private String subjectCode;

    /** 考试id */
    @ApiModelProperty(value = "考试ID")
    @Excel(name = "考试id")
    private String examInfoId;

    /** 考试科目名称Id */
    @ApiModelProperty(value = "考试科目名称ID")
    @NotBlank(message = "请选择考试科目名称ID")
    @Excel(name = "考试科目名称Id")
    private String examSubjectNameId;

    /** 批次 */
    @ApiModelProperty(value = "批次")
    @Excel(name = "批次")
    private Integer batchno;

    /** 试卷满分 */
    @ApiModelProperty(value = "试卷满分")
    @Excel(name = "试卷满分")
    @DecimalMax(value = "1000",message = "满分不得超过1000")
    private BigDecimal paperFullMarks;

    /** 合格标准 */
    @ApiModelProperty(value = "合格标准")
    @Excel(name = "合格标准")
    @DecimalMax(value = "1000",message = "合格标准不得超过1000")
    private BigDecimal eligibilityCriteria;

    /** 考试开始日期 */
    @ApiModelProperty(value = "考试开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "考试开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date examStartDay;

    /** 考试结束日期 */
    @ApiModelProperty(value = "考试结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "考试结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date examEndDay;

    /** 考试开始时间 */
    @ApiModelProperty(value = "考试开始时间")
    @Excel(name = "考试开始时间")
    private String examDayStartTime;

    /** 考试结束时间 */
    @ApiModelProperty(value = "考试结束时间")
    @Excel(name = "考试结束时间")
    private String examDayEndTime;

    /** 成绩有效期(取字典表中的value) */
    @ApiModelProperty(value = "成绩有效期(取字典表中的value)")
    @Excel(name = "成绩有效期(取字典表中的value)")
    private String effectiveDate;

    /** 备注 */
    @ApiModelProperty(value = "备注")
    @Excel(name = "备注")
    private String remarks;

    /** 是否复合科目(0:否(默认);1:是) */
    @ApiModelProperty(value = "是否复合科目(0:否(默认);1:是)")
    @Excel(name = "是否复合科目(0:否(默认);1:是)")
    private String isComposite;

    /** 部门id */
    @ApiModelProperty(value = "部门ID")
    @Excel(name = "部门id")
    private String deptId;


    /** 考试科目名称 */
    @ApiModelProperty(value = "考试科目名称")
    @Excel(name = "考试科目名称")
    @TableField(exist = false)
    private String examSubjectName;

    /** 科目编号 */
    @ApiModelProperty(value = "科目编号")
    private String comparisonType;

    /** 机构id */
    @ApiModelProperty(value = "机构id")
    @Excel(name = "机构id")
    private String officeId;

    /** 关联考试id */
    @ApiModelProperty(value = "关联考试id")
    private String relationId;

    /**
     * 批次id
     */
    @ApiModelProperty(value = "批次id")
    private String batchId;


    /**
     * 题目
     */
    @ApiModelProperty(value = "题目")
    @TableField(exist = false)
    private List<ExamStemInfo> examStemInfos;


    /** 科目名称 */
    @ApiModelProperty(value = "科目名称")
    @TableField(exist = false)
    private String subjectName;

}
